Chapter 17: Exercises

  1. MATLAB 的除錯器(Debugger)有何主要功能?
  2. 請寫出 3 項 MATLAB 除錯器的功能。
    Ans:
    1. 查詢每一個函數的 Workspace。
    2. 顯示函數呼叫的 Function Call Stack。
    3. M 檔案的 Step-by-step Execution。
  3. 一般而言,電腦程式可能發生的錯誤可分哪幾種?哪一種較難進行偵錯?
  4. 請說明一般偵測邏輯錯誤的常用方法。
    1. What command can you used in a program to make MATLAB stop there, so you can examine all variables therein?
    2. How to resume the execution after using the command?
    1. What command can you used to list all break points?
    2. What command can you used to clear all break points?
  5. 下列程式碼計算由 1 至 500 的總和,但在 MATLAB 下執行時,會發生錯誤。請指出錯誤所在,並修改之。 begin = 1; end = 500; vector = begin:end; total = sum(vector); % 計算向量總和 fprintf('The sum of %g to %g is %g.\n', begin, end, total); % 列印結果 提示:此題相當簡單,不需用到 MATLAB 除錯器。
  6. 下列程式碼計算由 1 至 1000 的平均值,並和 MATLAB 內建函數比較計算結果。但在 MATLAB 下執行此段程式碼時,會發生錯誤。請指出錯誤所在,並修改之。 clear all % 清除所有變數 vector = 1:1000; total = 0; for i=vector, total = total+i; end mean = total/1000; % 用我的方法算平均值 mean2 = mean(vector); % 用 MATLAB 內建函數 mean 來算平均值 fprintf('Difference in computation: %g.\n', abs(mean-mean2)); % 列出誤差 提示:此題相當簡單,不需用到 MATLAB 除錯器。

MATLAB程式設計:入門篇